package main

import (
	"fmt"
	"reflect"
)

type VowelsFinder interface {
	FindVowels() []rune
	FindAscii() []rune
}

type MyString string //定义自定义类型

func (s MyString) FindVowels() []rune {
	var result []rune
	for _, letter := range s {
		if letter == 'a' || letter == 'e' || letter == 'i' || letter == 'o' || letter == 'u' {
			result = append(result, letter)
		}
	}
	return result
}

func main() {
	var w1 MyString = "hello china"

	var v VowelsFinder

	v = w1 // 因为w1实现了 v 接口中的方法 // 必须要实现所有的方法才能实现赋值操作，实现部分方法会报错

	result := v.FindVowels()

	fmt.Println(result, reflect.TypeOf(result)) // slice
}
